package cn.itcast.n8;

import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.Semaphore;

import static cn.itcast.n2.util.Sleeper.sleep;

@Slf4j(topic = "c.TestSemaphore")
public class TestSemaphore {
    public static void main(String[] args) {
        final Semaphore semaphore = new Semaphore(3);

        new Thread(() -> {
            try {
                semaphore.acquire();
                semaphore.acquire();
                semaphore.acquire();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        },"t1").start();

        sleep(1);
        log.debug("{}",semaphore.availablePermits());
        //2 10线程执行
//        for (int i = 0; i < 10; i++) {
//            new Thread(() -> {
//                try {
//                    semaphore.acquire();
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//
//                try {
//                    log.debug("running...");
//                    sleep(1);
//                    log.debug("end...");
//                } finally {
//                    semaphore.release();
//                }
//            }).start();
//        }
    }
}
